Recurring Tasks:
Recurring tasks (বা পুনরাবৃত্তি কাজ) এমন কাজ যা নিয়মিত সময় পর পর চলতে থাকে, যেমন প্রতিদিন, প্রতি সপ্তাহে, প্রতি মাসে বা নির্দিষ্ট কোনো সময় পর পর কিছু কাজের সঞ্চালন। অনেক অ্যাপ্লিকেশনে এমন কাজগুলি প্রয়োজন, যেমন:
- দৈনিক ব্যাকআপ
 - ইমেইল রিপোর্ট পাঠানো
 - ডাটাবেস পরিষ্কার করা
 - ফাইল বা লগ ফাইল আর্কাইভ করা
 
এই ধরনের কাজগুলি স্বয়ংক্রিয়ভাবে চালানোর জন্য Cron Jobs ব্যবহৃত হয়।
Cron Jobs:
Cron একটি ইউনিক্স-ভিত্তিক কমান্ড লাইন ইউটিলিটি, যা নির্দিষ্ট সময়ে একটি স্ক্রিপ্ট বা প্রোগ্রাম চালানোর জন্য ব্যবহৃত হয়। এটি periodic বা scheduled tasks পরিচালনার জন্য ব্যবহৃত হয়। যখন আপনি একটি নির্দিষ্ট সময় বা সময়ের মধ্যে কাজ করতে চান, তখন আপনি cron jobs ব্যবহার করেন।
Cron Jobs কীভাবে কাজ করে:
একটি cron job সাধারণত একটি crontab file তে নির্দিষ্ট সময় এবং কাজের তালিকা থাকে। এই ফাইলটি সিস্টেমের cron ডিমনের মাধ্যমে স্ক্যান করা হয় এবং নির্দিষ্ট সময় বা নির্দিষ্ট ঘটনাতে কাজটি চালানো হয়।
Crontab Syntax:
Crontab ফাইলে প্রতিটি লাইন একটি cron job নির্দেশ করে এবং এর সিঙ্কট্যাক্স হল:
* * * * * /path/to/command
│ │ │ │ │
│ │ │ │ └─── Day of week (0 - 7) (Sunday = 0 or 7)
│ │ │ └───── Month (1 - 12)
│ │ └─────── Day of month (1 - 31)
│ └───────── Hour (0 - 23)
└─────────── Minute (0 - 59)
উদাহরণ:
Cron job to run every day at midnight:
0 0 * * * /path/to/script.shএটি প্রতিদিন ১২:০০ AM এ
script.shরান করবে।Cron job to run every Monday at 5 AM:
0 5 * * 1 /path/to/weekly_task.shএটি প্রতি সোমবার সকাল ৫:০০ AM এ
weekly_task.shরান করবে।Cron job to run every 15 minutes:
*/15 * * * * /path/to/script.shএটি প্রতি ১৫ মিনিটে
script.shরান করবে।
Common Cron Time Formats:
| Time Field | Value | Description | 
|---|---|---|
| Minute | 0-59 | 0 = exact minute | 
| Hour | 0-23 | 0 = midnight | 
| Day of month | 1-31 | 1 = 1st day of the month | 
| Month | 1-12 | 1 = January | 
| Day of week | 0-7 (Sun-Sat) | 0 or 7 = Sunday | 
Using Cron Jobs in Linux/Unix:
Cron jobs চালানোর জন্য, সাধারণত আপনাকে crontab ফাইলটি এডিট করতে হয়। crontab এডিট করতে:
Crontab এডিট করুন:
crontab -eCron job যোগ করুন:
ফাইলের শেষে আপনি আপনার কাজের সিডিউল যোগ করতে পারবেন।
উদাহরণস্বরূপ:
30 2 * * * /usr/bin/python3 /home/user/scripts/backup.pyএটি প্রতি রাত ২:৩০ AM এ backup.py স্ক্রিপ্টটি চালাবে।
Cron job তালিকা দেখতে:
crontab -lCron job মুছে ফেলতে:
crontab -r
Recurring Tasks in Applications
অ্যাপ্লিকেশনগুলিতে, recurring tasks চালানোর জন্য Cron jobs ব্যবহারের পাশাপাশি বিভিন্ন scheduling libraries বা task schedulers ব্যবহৃত হয়। অনেক ভাষায়, যেমন Node.js, Python, PHP, এবং Ruby, বিভিন্ন লাইব্রেরি বা প্যাকেজ রয়েছে যা background tasks বা recurring tasks চালানোর জন্য কাজ করে। উদাহরণস্বরূপ:
- Node.js: 
node-cronপ্যাকেজ ব্যবহার করে। - Python: 
APSchedulerবাCeleryব্যবহৃত হয়। - Ruby: 
Sidekiqবাrakeব্যবহৃত হয়। 
Step 1: Node.js with node-cron
Node.js এ Cron jobs ব্যবহার করার জন্য আপনি node-cron প্যাকেজ ব্যবহার করতে পারেন।
Installation:
npm install node-cron
Example:
const cron = require('node-cron');
// Run a task every minute
cron.schedule('* * * * *', () => {
  console.log('Task is running every minute');
});
// Run a task every day at 2 AM
cron.schedule('0 2 * * *', () => {
  console.log('Running task at 2 AM daily');
});
Step 2: Python with APScheduler
Python এ APScheduler প্যাকেজ ব্যবহার করে আপনি পুনরাবৃত্তি কাজগুলো নির্ধারণ করতে পারেন।
Installation:
pip install apscheduler
Example:
from apscheduler.schedulers.background import BackgroundScheduler
import time
def job():
    print("Task is running every 2 minutes")
scheduler = BackgroundScheduler()
scheduler.add_job(job, 'interval', minutes=2)
scheduler.start()
try:
    # To keep the script running
    while True:
        time.sleep(2)
except (KeyboardInterrupt, SystemExit):
    scheduler.shutdown()
Step 3: Using Cron Jobs in Laravel (PHP)
Laravel-এ recurring tasks বা cron jobs সেটআপ করা অনেক সহজ।
Example:
Scheduled command তৈরি করুন:
php artisan make:command DailyReportCommand ফাইলটি এডিট করুন:
app/Console/Commands/DailyReport.phpফাইলে গিয়ে আপনার কোড লিখুন:public function handle() { \Log::info('Running daily report task'); }Kernel ফাইলে schedule করুন:
app/Console/Kernel.phpফাইলে গিয়ে সিডিউল করুন:protected function schedule(Schedule $schedule) { $schedule->command('report:daily')->dailyAt('02:00'); }Cron Job রান করার জন্য:
আপনার server তে
crontabএ এই কমান্ডটি অ্যাড করুন:* * * * * cd /path/to/your/project && php artisan schedule:run >> /dev/null 2>&1
সারাংশ
Recurring tasks বা cron jobs হল সিস্টেমে নির্দিষ্ট সময়ে নির্দিষ্ট কাজ করার জন্য ব্যবহৃত সময়সীমাবদ্ধ কমান্ড বা স্ক্রিপ্ট। Cron jobs ব্যবহার করে আপনি যেমন ব্যাকআপ নিতে পারেন, রিপোর্ট পাঠাতে পারেন বা সিস্টেম মেইনটেন্যান্স করতে পারেন। আপনার সিস্টেমের কার্যকারিতা বাড়ানোর জন্য এই ধরনের স্বয়ংক্রিয় কাজগুলো খুবই গুরুত্বপূর্ণ।
আপনি Node.js, Python, Laravel বা অন্যান্য প্ল্যাটফর্মে cron jobs ব্যবহার করে সিস্টেমের কাজগুলো স্বয়ংক্রিয় করতে পারেন এবং অ্যাপ্লিকেশন বা সিস্টেমের রিয়েল-টাইম কার্যক্রমে উন্নতি আনতে পারেন।
Read more